kind: ClusterConfiguration
apiVersions:
- apiVersion: deckhouse.io/v1
  openAPISpec:
    description: |
      Общие параметры кластера.

      Определяют, например, сетевые параметры, параметры CRI, версию control plane и т. д. Некоторые параметры можно изменять после развертывания кластера, во время его работы.

      Чтобы изменить содержимое ресурса `ClusterConfiguration` в работающем кластере, выполните следующую команду:

      ```shell
      kubectl -n d8-system exec -ti deploy/deckhouse -- deckhouse-controller edit cluster-configuration
      ```
    properties:
      apiVersion:
        description: Используемая версия API Deckhouse.
      clusterType:
        description: |
          Тип инфраструктуры кластера:
          - `Static` — кластер на bare metal (физические серверы) или виртуальных машинах. В случае виртуальных машин подразумевается, что у Deckhouse нет доступа к API для управления виртуальными машинами (они управляются администратором с помощью обычных средств облачной инфраструктуры);
          - `Cloud` — кластер, развернутый в облачной инфраструктуре. Этот тип подразумевает, что у Deckhouse есть доступ к API облачной инфраструктуры для управления виртуальными машинами.
      cloud:
        description: |
          Параметры облачного провайдера (если используется [clusterType](#clusterconfiguration-clustertype) `Cloud`).
        properties:
          provider:
            description: Облачный провайдер.
          prefix:
            description: |
              Префикс объектов, создаваемых в облаке.

              Используется, например, для того, чтобы отличать объекты, создаваемые для разных кластеров, для настройки маршрутизации и т. д.
      podSubnetCIDR:
        description: |
          Адресное пространство Pod'ов кластера.

          > Внимание! Смена параметра в уже развернутом кластере невозможна в обычном режиме. Чтобы обойти это ограничение, используйте специальный флаг.
      podSubnetNodeCIDRPrefix:
        description: |
          Префикс сети Pod'ов на узле.

          > Внимание! Смена параметра в уже развернутом кластере невозможна в обычном режиме. Чтобы обойти это ограничение, используйте специальный флаг.
      serviceSubnetCIDR:
        description: |
          Адресное пространство для service'ов кластера.

          > Внимание! Смена параметра в уже развернутом кластере невозможна в обычном режиме. Чтобы обойти это ограничение, используйте специальный флаг.
      clusterDomain:
        description: |
          Домен кластера (используется для маршрутизации внутри кластера).

          **Обратите внимание:** домен не должен совпадать с доменом, используемым в шаблоне DNS-имен в параметре [publicDomainTemplate](../deckhouse-configure-global.html#parameters-modules-publicdomaintemplate). Например, нельзя одновременно устанавливать `clusterDomain: cluster.local` и `publicDomainTemplate: %s.cluster.local`.
      defaultCRI:
        description: |
          Тип container runtime, используемый на узлах кластера (в NodeGroup'ах) по умолчанию.

          Если используется значение `NotManaged`, то Deckhouse не будет управлять (устанавливать и настраивать) container runtime.
          В этом случае образы, используемые в NodeGroup'ах, должны содержать уже установленный container runtime.
      kubernetesVersion:
        description: |
          Версия control plane кластера Kubernetes.

          Изменение параметра в работающем кластере приведет к [автоматическому обновлению](https://deckhouse.ru/documentation/v1/modules/040-control-plane-manager/#управление-версиями) версии control plane кластера.

          Если указано `Automatic`, то используется версия control plane, которая считается стабильной на данный момент. Если стабильная версия control plane меньше максимальной, которая когда либо была установлена в кластере, больше чем на 1 минорную версию - тогда версия кластера не изменится.
          Изменение этой версии может произойти при смене минорной версии релиза Deckhouse (см. список изменений к релизу).
      proxy:
        description: |
          Глобальная настройка proxy-сервера (в основном для работы в закрытых окружениях).

          Описанные в этой секции параметры будут транслированы в переменные окружения `HTTP_PROXY`, `HTTPS_PROXY` и `NO_PROXY` для всех узлов кластера и компонентов Deckhouse. Это приведёт к тому, что HTTP(S) запросы (например, при выполнении curl, git и т. д.) ко всем не указанным в параметре `noProxy` ресурсам будут выполняться через прокси. Подсети `podSubnetCIDR`, `serviceSubnetCIDR` и домен `clusterDomain` добавляются в `noProxy` автоматически.

          > **Внимание!** Чтобы избежать использования прокси в запросах между компонентами кластера, важно заполнить параметр `noProxy` списком подсетей, которые используются на узлах.
        properties:
          httpProxy:
            description: |
              URL proxy-сервера для HTTP-запросов.

              При необходимости укажите имя пользователя, пароль и порт proxy-сервера.
          httpsProxy:
            description: |
              URL proxy-сервера для HTTPS-запросов.

              При необходимости укажите имя пользователя, пароль и порт proxy-сервера.
          noProxy:
            description: |
              Список IP и доменных имен, для которых проксирование не применяется.

              Для настройки wildcard-доменов используйте написание вида ".example.com".
